package com.shujia


/**
 * 1、样例类中定义的属性默认由val修饰，无法修改，可以手动指定为var
 * 2、样例类默认实现了序列化接口，样例类对象可以直接在网络中传输
 * 3、样例类默认给所有的属性都加上了类似Java中的get方法，如果属性由var修饰，则还会由类似set的方法
 * 4、样例类在创建对象的时候，不需要使用new关键字
 * 5、样例类默认会重写toString方法，打印样例类对象时会将所有的属性值进行输出
 */

object Demo12ScalaCaseClass {
  // 样例类：可以在任意位置进行定义
  case class CaseStudent(id: String, var name: String, age: Int, gender: String, clazz: String)

  def main(args: Array[String]): Unit = {
    // 创建样例类对象
    val stu01: CaseStudent = CaseStudent("01", "zs", 20, "男", "文科四班")

    println(stu01.id)
    println(stu01.name)
    stu01.name = "张三"
    println(stu01.name)

    println(stu01)
  }

}
